0 REM ***************************** 1 REM * ADVENTURE-PROGRAMMIERKURS * 2 REM * * 3 REM * UEBUNGS-PROGRAMM * 4 REM ***************************** 9 REM BASIC-ERWEITERUNG 10 DATA76,24,1,177,251,145,251,200,208,249,230,252,202,208,244,96,120,160,0,169 12 DATA160,132,251,133,252,162,32,32,11,1,169,224,132,251,133,252,162,32,32,11 14 DATA1,169,53,133,1,88,96:FORI=264TO310:READX:POKEI,X:NEXT:SYS264 16 FORI=710TO730:READX:POKEI,X:NEXT 18 DATA208,3,76,29,168,32,192,2,32,19,166,56,165,95,233,1,164,96,76,36,168 20 POKE40996,197:POKE40997,2:POKE1,54 22 FORI=43168TO43170:READX:POKEI,X:NEXT 24 FORI=704TO709:READX:POKEI,X:NEXT 26 DATA32,192,2,32,138,173,76,247,183 30 GOSUB52000: REM TABELLEN DEFINIEREN 100 ZN=1:GOTO1130 1000 REM A C T I O N M O D U L 1010 GOSUB50000: REM BEFEHLSEINGABE 1100 REM GEHEN IN EIN NEUES ZIMMER 1105 IFVE<1ORVE>10THEN1200 1110 IFRI(VE)=0THENPRINT"KEIN WEG IN DIESE RICHTUNG !":VE=0:GOTO1200 1120 ZN=RI(VE):PRINT"[147]" 1130 VE=0 1140 RESTORE 10000+ZN*100 1150 FORI=1TO10:READRI(I):NEXT 1155 GOSUB 10000+ZN*100 1160 PRINT"MOEGLICHE RICHTUNGEN : "; 1165 IC=0:FORI=1TO10:IFRI(I)<>0THENPRINTVE$(I);",";:IC=1 1170 NEXTI 1175 IFIC=0THENPRINT"KEINE." 1180 IFIC=1THENPRINTCHR$(20) 1185 PRINT"ICH SEHE : "; 1186 IC=0:FORI=1TOOZ:IFOO(I)=ZNTHENPRINTOB$(I);",";:IC=1 1187 NEXT 1188 FORI=1TOGZ:IFGE(I)=ZNTHENPRINTGE$(I);",";:IC=1 1189 IFGE(I)=-2ANDTU(2)=0ANDZN=5THENPRINTGE$(I);",";:IC=1 1190 NEXT 1192 IFIC=0THENPRINT"NICHTS BESONDERES." 1194 IFIC=1THENPRINTCHR$(20) 1200 REM 2000 REM REAKTION AUF BEFEHLE (ALLGEMEINE ACTION) 2100 REM NIMM ROUTINE 2110 IFVE<>15THEN2200 2115 IFOB<>0THENPRINT"DAS GEHT UEBER MEINE KRAEFTE !":GOTO2200 2119 IFGE(G1)=-2ANDZN=5ANDTU(2)=0THEN2125 2120 IFGE(G1)<>ZNTHENPRINT"ICH SEHE DIESEN GEGENSTAND HIER NICHT !" 2125 IFGE(G1)=-1THENPRINT"SIE HABEN DIESEN GEGENSTAND BEREITS !" 2130 IFGE(G1)=ZNTHENGE(G1)=-1:PRINT"OK." 2200 REM INVENTUR ROUTINE 2205 IFVE<>22THEN2300 2210 PRINT"ICH HABE: "; 2220 IC=0:FORI=1TOGZ:IFGE(I)=-1THENPRINTGE$(I)",";:IC=1 2225 NEXT 2230 IFIC=0THENPRINT"NICHTS." 2235 IFIC=1THENPRINT"[157] " 2300 REM VERLIER ROUTINE 2301 IFOB<>0THEN2400 2305 IFVE<>18THEN2400 2310 IFGE(G1)<>-1THENPRINT"ICH HABE DAS NICHT !" 2320 IFGE(G1)=-1THENGE(G1)=ZN:PRINT"OK." 2400 REM SCHAU - ROUTINE 2405 IFVE<>13THEN2500 2410 IFOB=0ANDG1=0THENPRINT"[147]":VE=0:GOTO1130 2415 IFOB=1ANDOO(1)=ZNTHENPRINT"DIE TRUHE IST SEHR GROSS." 2500 REM AUFRUF DER RAUMSPEZIFISCHEN ACTION 2505 GOSUB3000 : REM GESPENST 2510 GOSUB 10000+ZN*100+20 2520 IFVE>0ANDVE<11THEN1100 2600 GOTO1000 3000 REM STEUERUNG DES GESPENSTES 3010 IFMO=0THENRETURN 3020 MO=MO+1:IFMO=12THENMO=1 3025 IFPE(MO)<>ZNTHEN3100 3030 PRINT"EIN RIESIGES GESPENST ERSCHEINT !" 3100 IC=0:FORI=1TOGZ:IFGE(I)=PE(MO)THENIC=I 3105 NEXT 3110 IFIC=0THEN3150 3120 GE(GF)=PE(MO):GF=IC:GE(IC)=0 3150 IFPE(MO)=5ANDZN=7ANDTU(2)=0THENTU(2)=1:PRINT"JEMAND SCHLIESST DIE TRUHE !" 3160 RETURN 10000 REM ------- SPIELKARTE ------- 10100 REM RAUM 1 --------- 10102 DATA 0,3,0,2,0,0,0,0,0,0 10105 PRINT"RAUM NUMMER 1" 10120 RETURN 10200 REM RAUM 2 --------- 10202 DATA 0,0,1,0,0,0,0,6,0,0 10205 PRINT"RAUM NUMMER 2" 10220 IFTU(1)=0THENRI(2)=5 10224 IFVE=11ANDOB=5ANDGE(3)<>-1THENPRINT"ICH HABE KEINEN SCHLUESSEL.":GOTO10230 10225 IFVE=11ANDOB=5ANDTU(1)=1THENPRINT"OK.":TU(1)=0:RI(2)=5 10230 IFVE=12ANDOB=5ANDTU(1)=0THENPRINT"OK.":TU(1)=1:RI(2)=0 10240 IFVE=23ANDOB=5THENVE=2 10250 RETURN 10300 REM RAUM 3 --------- 10302 DATA 1,0,0,0,0,0,0,0,0,4 10305 PRINT"RAUM NUMMER 3" 10320 RETURN 10400 REM RAUM 4 --------- 10402 DATA 0,0,0,0,0,0,0,0,3,0 10405 PRINT"RAUM NUMMER 4" 10420 RETURN 10500 REM RAUM 5 --------- 10502 DATA 0,0,0,0,0,0,0,0,0,0 10505 PRINT"RAUM NUMMER 5" 10520 IFTU(1)=0THENRI(1)=2 10524 IFVE=11ANDOB=5ANDGE(3)<>-1THENPRINT"ICH HABE KEINEN SCHLUESSEL.":GOTO10230 10525 IFVE=11ANDOB=5ANDTU(1)=1THENPRINT"OK.":TU(1)=0:RI(1)=2 10530 IFVE=12ANDOB=5ANDTU(1)=0THENPRINT"OK.":TU(1)=1:RI(1)=0 10540 IFVE=23ANDOB=5THENVE=1 10545 IFVE=11ANDOB=1ANDTU(2)=1THENPRINT"OK.":TU(2)=0 10546 IFVE=12ANDOB=1ANDTU(2)=0THENPRINT"OK.":TU(2)=1 10548 IFVE=15ANDGE(G1)=-2ANDTU(2)=0THENPRINT"OK.":GE(G1)=-1 10550 IFVE=18ANDOB=1ANDTU(2)=0ANDGE(G1)=-1THENPRINT"OK.":GE(G1)=-2 10560 IFVE=23ANDOB=1ANDTU(2)=0THENRI(1)=7:VE=1 10590 RETURN 10600 REM RAUM 6 --------- 10602 DATA 0,0,0,0,2,0,0,0,0,0 10605 PRINT"RAUM NUMMER 6" 10620 RETURN 10700 REM IN DER TRUHE ------- 10702 DATA 0,0,0,0,0,0,0,0,0,0 10705 PRINT"IN DER TRUHE." 10720 IFVE=25ANDOB=1ANDTU(2)=0THENRI(1)=5:VE=1 10730 RETURN 50000 REM **************************** 50010 REM * BEFEHLSEINGABE * 50020 REM * BEFEHLSZERLEGUNG * 50030 REM * BEFEHLSCODIERUNG * 50040 REM **************************** 50050 IFUD=1THEN50220 50060 POKE198,0:BE$="":PRINT"WAS NUN ? "; 50070 POKE204,0 50080 GETX$:IFX$=""THEN50080 50090 IFPEEK(203)=1ORLEN(BE$)>68THENPRINT" ":POKE204,1:GOTO50140 50100 I=ASC(X$):IFI<65ORI>90THENIFI<>32ANDI<>20ANDI<>34THEN50080 50110 IFI=20ANDBE$=""THEN50080 50120 IFI=20THENPOKE204,1:PRINT"[157] [157][157]";:BE$=LEFT$(BE$,LEN(BE$)-1):GOTO50070 50130 PRINTX$;:BE$=BE$+X$:GOTO50080 50140 FORI=1TO10:BE$(I)="":NEXT:WZ=1:FORI=1TOLEN(BE$) 50150 :IFMID$(BE$,I,1)=" "THENGOSUB50190:GOTO50180 50160 :IFWZ>10THENPRINT"EINGABE IST ZU LANG !":I=LEN(BE$)+1:GOTO50180 50170 :BE$(WZ)=BE$(WZ)+MID$(BE$,I,1) 50180 NEXTI:GOTO50220 50190 IC=0:FORI1=1TOAZ:IFBE$(WZ)=AU$(I1)THENIC=1 50200 NEXTI1:IFIC=0THENWZ=WZ+1:RETURN 50210 BE$(WZ)="":RETURN 50220 IFUD=1THENUD=0:GOTO50240 50230 WZ=1:VE=0:OB=0:PE=0 50240 IC=0:G1=0:G2=0 50250 FORI=1TOVZ:IFBE$(WZ)=VE$(I)THENVE=I:IC=1 50251 IFLEN(BE$(WZ))<3THEN50260 50255 IFBE$(WZ)=LEFT$(VE$(I),LEN(BE$(WZ)))THENVE=I-VAL(RIGHT$(VE$(I),1)):IC=1 50260 NEXTI:IFIC=1THEN50350 50270 FORI=1TOGZ:IFBE$(WZ)<>GE$(I)THEN50300 50280 IC=1:IFG1=0THENG1=I 50290 G2=I:IFG2=G1THENG2=0 50300 NEXTI:IFIC=1THEN50350 50310 FORI=1TOOZ:IFBE$(WZ)=OB$(I)THENOB=I:IC=1 50320 NEXTI:IFIC=1THEN50350 50330 FORI=1TOPZ:IFBE$(WZ)=PE$(I)THENPE=I:IC=1 50340 NEXTI 50350 IFBE$(WZ)="UND"THENUD=1:IC=1 50360 IFIC=0THENPRINT"ICH KENNE ";BE$(WZ);" NICHT !":RETURN 50370 WZ=WZ+1:IFWZ>10ORBE$(WZ)=""ORUD=1THENRETURN 50380 IC=0:GOTO50250 52000 REM T A B E L L E N 52005 RESTORE52000 52010 REM VERBTABELLE --------- 52020 DATAN,S,W,O,NW,NO,SW,SO,RAUF,RUNTER 52030 DATAOEFFNE,SCHLIESSE,SCHAUE,UNTERSUCHE1,NIMM,NEHME1,HOLE2 52035 DATAVERLIERE,LEGE1,WIRF2,WERFE3,INVENTUR 52040 DATAGEHE,BETRETE1 52045 DATAVERLASSE 52100 VZ=25:DIMVE$(VZ):FORI=1TOVZ:READVE$(I):NEXT 52200 REM GEGENSTANDSTABELLE --------- 52210 DATASCHWERT,-2 52211 DATASEIL,2 52212 DATASCHLUESSEL,4 52213 DATADIAMANT,5 52300 GZ=4:DIMGE$(4):DIMGE(4):FORI=1TOGZ:READGE$(I):READGE(I):NEXTI 52400 REM OBJEKTTABELLE --------- 52410 DATATRUHE,5 52412 DATASCHACHT,6 52414 DATAEISENRING,6 52416 DATATUER,2 52418 DATATUER,5 52500 OZ=5:DIMOB$(OZ):DIMOO(OZ):FORI=1TOOZ:READOB$(I):READOO(I):NEXTI 52600 REM PERSONENTABELLE ------- 52610 DATAGESPENST 52700 PZ=1:DIMPE$(PZ):FORI=1TOPZ:READPE$(I):NEXT 52900 REM ALLGEMEINE TABELLEN 52910 TU(1)=1:REM TUER 2/5 52920 TU(2)=1:REM TRUHE 52930 DATA1,3,4,3,1,2,5,2,6,2,1 52935 DIMPE(11):FORI=1TO11:READPE(I):NEXT:MO=1 53000 RETURN